package util;

import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.json.JSONObject;

public class CommUtil {

/** 2013-05-14 (jeongyej) : get failure json string.
 * 
 * @param {Exception} e
 * 
 * @return {String} String.
 * 		json error string.
 */

  public static String getFailureJSON(Exception e) throws Exception{
  	JSONObject jsonObj = new JSONObject();
		jsonObj.put("success", false);
		jsonObj.put("errors", e.getMessage());
		return jsonObj.toString();
  }
  	  
/* 2013-05-14 (jeongyej) : see if value is null or not. */
  
	public static String nullchk(String obj){
		if(obj == null){
			obj = "";	
		}else if("".equals(obj)){
			obj = "";
		}
		return obj.trim();
	}

/* 2013-05-14 (jeongyej) : get string specific value of HashMap */
	
	public static String getMapValue(HashMap<String, String> paramMap, String obj){
		return nullchk(paramMap.get(obj).toString());
	}
	
/* 2013-05-17 (jeongyej) : 날짜값을 YYYYmmdd 형식으로 반환한다. */
	
	public static String getYYYYmmdd(String date) {
		return date.substring(0,4)+date.substring(5,7)+date.substring(8, date.length());
	}
	
/* 2013-05-17 (jeongyej) : String 값이 "" 인 경우 DateField 에 입력이 가능하도록 0 으로 변경한다. */
	
	public static String getZeroDateField(String date){
		return ("".equals(date))?"0000-00-00":date;
	}
	
/* 2013-05-17 (jeongyej) : 입력된 날짜값을 "." 기호로 치환한다. */
	
	public static String getDotYYYYmmdd(String param){
		String sReturn = "";
		if(!"".equals(param)){
			sReturn = param.substring(0, 4)+". "+param.substring(5, 7)+". "+param.substring(8, 10);
		}
		return sReturn;
	}
	
/* 2013-05-17 (jeongyej) : 입력된 날짜의 값을 "/" 로 구분후 달과 월을 return */
	
	public static String getSlashmmdd(String param){
		String sReturn = "";
		if(!"".equals(param)){
			sReturn = param.substring(5, 7)+"/"+param.substring(8, 10);
		}
		return sReturn;
	}	
	
/* 2013-07-16 (jeongyej) : 특수문자를 지정한 문자로 치환한다. */
	
	public static String replaceStr(String obj, String oldString, String newString){
		return obj.replace(oldString, newString);
	}
	
/**
 * 2013-09-13 see if list is available or not.
 * 
 * @author YeonJong Jeong
 */	
	
	public static boolean isList(List<?> list){
		boolean bReturn = false;
		
		if(list.size() > 0 && list != null)
			bReturn = true;
		
		return bReturn;
	}
	
/**
 * 2013-09-13 see if Array is available or not.
 * 
 * @author YeonJong Jeong
 */	
	
	public static boolean isArray(String[] array){
		boolean bReturn = false;
		
		if(array.length > 0 && array != null)
			bReturn = true;
		
		return bReturn;
	}	
	
/**
 * 2013-09-13 return value from HttpServletRequest
 * 
 * @author YeonJong Jeong
 */
  
  public static String getReqValue(HttpServletRequest r, String value){
  	
  	String sReturn = "";
  	if(r.getAttribute(value) != null){
  		sReturn = nullchk((String)r.getAttribute(value));
  	}else{
  		sReturn = nullchk(r.getParameter(value));
  	}
  	  	
  	return sReturn;
  }
	
}
